package day01;

import java.util.Random;
import java.util.Scanner;

/**
 * 生成一个4位验证码(数字和字母的组合)
 * 然后输出到控制台并提示用户输入该验证码，只要用户输入正确(无论大小写都算)，
 * 就输出:验证码正确，否则输出:验证码错误
 *
 *
 * 验证码如何生成?
 * 思路导向填空:
 * 1:要先确定生成的内容范围(列出所有可以出现的字符):
 *
 * 2:先思考如何生成其中的一个字符呢？
 *   2.1:确定怎么保存这些可以出现的字符:
 *
 *   2.2:怎么能随机抽选一个
 *
 * 3:既然可以生成一个，如何做到生成4个或更多个?
 *
 * 4:怎么在生成这些字符的过程中将他们组成一个字符串?
 *
 * 5:获取到用户输入的字符串后怎么与之比较,要利用到哪些字符串操作?
 *
 *
 * @author Xiloer
 *
 */
public class Test06 {
    public static void main(String[] args) {
        //首先尝试独立思考，完成需求，没有思路可看最下面的提示
        //拿出生成的随机码
        String code=randomCode();
        System.out.println(code);
        Scanner scanner = new Scanner(System.in);
        System.out.println("请用户输入验证码");
        String line = scanner.nextLine();
        if (line.equalsIgnoreCase(code)){//IgnoreCase忽略大小写
            System.out.println("验证码输入正确");
        }else {
            System.out.println("验证码输入错误");
        }
    }

    /**
     * 随机生成的验证码
     * @return 验证码
     */
    public static String randomCode(){
        String line="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        System.out.println(line.length());
        String code="";
        Random random = new Random();
        for (int i = 0; i < 4; i++) {
            int index = random.nextInt(line.length());
            //随机生成四个随机数
            char c = line.charAt(index);
            //得到字符
            code+=c;
            //为code赋值
        }
        return code;
    }
}

/*
		提示代码:
		需要用到的语句，尝试按照正确顺序将下列代码并放在main方法中完成需求，
		并在注释中标注每句话的作用，

		//可以随机生成的所有字母和数字
		String line = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

		//密码
		String code = "";

		//随机数
		Random random = new Random();

		//遍历4次
		for(int i=0;i<4;i++) {

		}
		//得到字符
		char c = line.charAt(index);

		//生成的范围
		int index = random.nextInt(line.length());

		//为密码赋值
		code+=c;

		//让用户输入提示
		System.out.println("请输入验证码:");

		//可以在控制台输入
		Scanner scanner = new Scanner(System.in);

		//密码匹配
		if(code.equalsIgnoreCase(input)){

		}else{

		}

		//用户输对了代表着验证成功
		System.out.println("验证成功!");

		//用户输入错误验证失败
		System.out.println("验证失败!");

		//用户可以在控制台输入
		String input = scanner.nextLine();

		//验证码的的输出
		System.out.println("验证码:"+code);
 */

